Memory interface signal reduction

ABSTRACT

In some embodiments a controller includes a memory activate pin, one or more combined memory command/address signal pins, and a selection circuit adapted to select in response to the memory activate pin as each of the one or more combined memory command/address signal pins either a memory command signal or a memory address signal. Other embodiments are described and claimed.

TECHNICAL FIELD

The inventions generally relate to memory interface signal reduction.

BACKGROUND

The number of row address signals necessary on a memory interface such as a Dynamic Random Access Memory (DRAM) interface has been significantly increasing. This is due to use of higher density memories, rank multiplication, and smaller page size of memory devices, for example. A need has arisen to reduce the number of memory interface signals as much as possible.

BRIEF DESCRIPTION OF THE DRAWINGS

The inventions will be understood more fully from the detailed description given below and from the accompanying drawings of some embodiments of the inventions which, however, should not be taken to limit the inventions to the specific embodiments described, but are for explanation and understanding only.

FIG. 1 illustrates a system according to some embodiments of the inventions.

FIG. 2 illustrates a graphical representation according to some embodiments of the inventions.

FIG. 3 illustrates a graphical representation according to some embodiments of the inventions.

FIG. 4 illustrates a graphical representation according to some embodiments of the inventions.

FIG. 5 illustrates logic according to some embodiments of the inventions.

FIG. 6 illustrates logic according to some embodiments of the inventions.

DETAILED DESCRIPTION

Some embodiments of the inventions relate to memory interface signal reduction.

In some embodiments a controller includes a memory activate pin, one or more combined memory command/address signal pins, and a selection circuit adapted to select in response to the memory activate pin as each of the one or more combined memory command/address signal pins either a memory command signal or a memory address signal.

FIG. 1 illustrates a system 100 according to some embodiments. In some embodiments system 100 includes a processor 102 (for example, a Central Processing Unit or CPU), a memory controller 104 (for example, a memory controller included in the processor, a memory controller on the same die as the processor, a separate integrated memory controller, a memory controller hub, an integrated memory controller hub, a graphics and memory controller hub, a platforms controller hub, a memory controller in a chipset, and/or a Dynamic Random Access Memory controller or DRAM controller, etc), and a memory 106 (for example, a DRAM, a Double Data Rate or DDR memory, and/or a DDR4 memory, etc). The memory controller 104 handles communication between the processor 102 and the memory 106.

FIG. 2 illustrates a graphical representation 200 of memory signals (for example, DDR4 memory signals) according to some embodiments. As illustrated in FIG. 2, the defined commands are three bits in length and use a Row Address Strobe or Row Address Select (RAS or RAS#) signal, a Column Address Strobe or Column Address Select (CAS or CAS#) signal, and a Write Enable (WE or WE#) signal.

In some embodiments, and as evident from representation 200, extra pins are required for some types of memory interface (for example, in some embodiments DDR4) which are only necessary for one command (for example, extra pins are only required for an activate command according to some embodiments). In DDR4, for example, 21 address signals A0, A1, A2, A3, . . . , A17 are defined. All 18 address signals are required for the row address at the highest density. However, only 13 of these address signals are required for any other command.

As evident from FIG. 2, 18 row address signals are required, which supports 16 Gbit memory. Additionally, it is apparent that the upper address signals (for example, A18 to A13) are used only for the activate command, and that all other commands use far fewer bits (read and write commands use 13 bits rather than all 18 bits, for example). All commands represented in FIG. 2 use a three bit command encoding. It is noted that this is left over (but expanded) from the asynchronous (“Strobe”) DRAM days. While it is familiar and consistent and has served well, it is a wasteful arrangement when row address bits exceed column bits by more than a few bits (this began, for example, with DDR3).

FIG. 3 illustrates a graphical representation 300 of memory command signals (for example, DDR4 memory command signals) according to some embodiments. As illustrated in FIG. 3, the defined commands are one bit in length for the activate command (for example, when the ACT or ACT# signal is 0), and four bits in length (four bit encoding) for other commands.

As illustrated in FIG. 3, a new signal called ACT or ACT# uniquely identifies the activate command. When this signal is low, for example, the memory (or memories) interpret the command as an activate, and the RAS (or RAS#), CAS (or CAS#), and WE (or WE#) signals are used as address signals (for example, as address signals A16, A15, and A14, respectively in some embodiments).

When ACT# is high, RAS#, CAS#, and WE# retain their current encoding to specify seven other commands as illustrated in FIG. 3. The previous “activate” command encoding (011) is in some embodiments reserved or in some embodiments can be used by a new command type.

As evident from FIG. 3, a one bit encoding is used for the activate command and a four bit encoding is used for other commands, while the total signal count is reduced by two. When the new ACT signal is 0, it uniquely indicates an activate command. The RAS/CAS/WE signals become three row address bits during an activate since they are not required as command bits. When the new ACT signal is 1, the RAS/CAS/WE signals revert to being commands. In some embodiments, RAS/CAS/WE retain the same encoding as before, except that the previous ‘011’ activate code is in some embodiments a reserve command that is reusable by any new command that comes along. In some embodiments, the addition of the new ACT signal and the reduction of three address signals results in a net savings of two signals.

FIG. 4 illustrates a graphical representation 400 of memory signals (for example, DDR4 memory signals) according to some embodiments. The graphical representation 400 is similar to and/or includes the graphical representation 300 as well as more detailed information about the signals according to some embodiments.

According to some embodiments one signal is added (ACT#) and three address signals are eliminated (for example, RAS# is combined with A16, CAS# is combined with A15, and WE# is combined with A14 according to some embodiments as illustrated in FIG. 3 and FIG. 4). This provides for a total reduction of two signals.

According to some embodiments, other address row bits other than A15, A14, and A13 are placed on the RAS#, CAS#, and WE# signals. For example, in some embodiments, the highest row address bits A17, A16, and A15 are placed on the RAS#, CAS#, and WE# signals. However, this implementation saves two pins under conditions where all row address signals are used (the highest density). It is noted that the higher address signals are not used most of the time, however.

As discussed above, in some embodiments, the RAS#, CAS#, and WE# respectively carry A16, A15, and A14, and the two signals are saved virtually all of the time. In some embodiments (for example, in DDR4 embodiments) address signals A12 through AO are used for read and write commands and no A15, A14, or A13 signals are necessary on any part of the interface from the memory controller or the memory socket (for example, Dual In-Line Memory Module or DIMM socket) to the memory (or memories).

According to some embodiments, command signals (for example, RAS#, CAS#, and WE#) are combined with address signals (for example, A16, A15, and A14). According to some embodiments, this combining is particularly useful in implementations where the number of row address bits exceeds the column address bits (for example, by more than one bit).

According to some embodiments, the pin count of a memory interface (for example, a DRAM interface and/or a DDR4 interface) is reduced (for example, by two signals). The reduced signal savings occurs throughout the system, such as, for example, on the memory controller (and/or processor) times the number of memory channels, on the memory socket (and/or DIMM socket), on the register device on registered memories (for example, ×3 for one input, two outputs per signal), on the memories themselves, on a device for Scalable Memory Interconnect (SMI) types of interfaces, on memory buffers (times two or three depending on the number of output copies), and/or on all routing throughout the system.

According to some embodiments, a number of pins (for example, two pins) is saved. This reduction in the number of pins reduces the cost of the processor (and/or CPU), the memory socket (and/or DIMM socket), register, memories (and/or DRAM0, etc. It also saves power by having two fewer signals driven.

According to some embodiments, in order to reduce the signal count in all situations, address bits A16:A14 are multiplexed (muxed) with RAS/CAS/WE. These bits are chosen to achieve pin and power savings at most densities. According to some embodiments, a controller that need only support up to address signal A17 still achieves a savings of two signals. A controller with a fixed limit on signals can increase its memory capacity by 4×. In some embodiments, ×16 DRAMS, which support only up to address signal A16, still achieves a savings of two signals. According to some embodiments, power savings begin at 4 Gbit for ×4 and 8 Gbit for ×8 and ×16. In some embodiments A12 and below are used for column addresses (in some embodiments, All is actually a spare used in DDR3 but not DDR4, for example). Some commands such as MRS are restricted to A12:A0, but there are many register/bit combinations that only use up to A12 already.

According to some embodiments, when the activate command is not present (ACT is high) the RAS/CAS/WE signals retain the same encoding as previously used.

FIG. 5 illustrates logic 500 according to some embodiments. In some embodiments, logic 500 comprises a selection circuit. In some embodiments, logic 500 includes a NAND gate 502, a multiplexer 504, a multiplexer 506, and a multiplexer 508. In some embodiments, logic 500 is conversion logic to convert the RAS#, CAS#, WE#, A16, A15, and A14 signals from the existing protocol to the new protocol signals ACT#, RAS#/A16, CAS#/A15, and WE#/A14, for example. In some embodiments, logic 500 is implemented in a memory controller, a processor, and/or a CPU (for example, in some embodiments, in a controller such as processor 102 and/or in memory controller 104).

FIG. 6 illustrates logic 600 according to some embodiments. In some embodiments, logic 600 comprises a selection circuit. In some embodiments, logic 600 includes a multiplexer 604, a multiplexer 606, and a multiplexer 608. In some embodiments, logic 600 is conversion logic to convert the new protocol signals ACT#, RAS#/A16, CAS#/A15, and WE#/A14 to the existing protocol signals RAS#, CAS#, WE#, A16, A15, and A14 signals, for example. In some embodiments, logic 600 is implemented in a memory controller, a processor, and/or a CPU (for example, in some embodiments, in a controller such as processor 102 and/or in memory controller 104).

According to some embodiments, two signals are saved per native memory interface. Many Intel CPUs have four DRAM interfaces, for example, which means a savings of eight signal pins plus in some embodiments four ground pins. The pins associated with the native interface are very costly to the CPU, and the savings of twelve pins is quite significant.

Although some embodiments have been described herein as being implemented in a DDR4 memory system, according to some embodiments these particular implementations are not required.

Although some embodiments have been described in reference to particular implementations, other implementations are possible according to some embodiments. Additionally, the arrangement and/or order of circuit elements or other features illustrated in the drawings and/or described herein need not be arranged in the particular way illustrated and described. Many other arrangements are possible according to some embodiments.

In each system shown in a figure, the elements in some cases may each have a same reference number or a different reference number to suggest that the elements represented could be different and/or similar. However, an element may be flexible enough to have different implementations and work with some or all of the systems shown or described herein. The various elements shown in the figures may be the same or different. Which one is referred to as a first element and which is called a second element is arbitrary.

In the description and claims, the terms “coupled” and “connected,” along with their derivatives, may be used. It should be understood that these terms are not intended as synonyms for each other. Rather, in particular embodiments, “connected” may be used to indicate that two or more elements are in direct physical or electrical contact with each other. “Coupled” may mean that two or more elements are in direct physical or electrical contact. However, “coupled” may also mean that two or more elements are not in direct contact with each other, but yet still co-operate or interact with each other.

An algorithm is here, and generally, considered to be a self-consistent sequence of acts or operations leading to a desired result. These include physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers or the like. It should be understood, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities.

Some embodiments may be implemented in one or a combination of hardware, firmware, and software. Some embodiments may also be implemented as instructions stored on a machine-readable medium, which may be read and executed by a computing platform to perform the operations described herein. A machine-readable medium may include any mechanism for storing or transmitting information in a form readable by a machine (e.g., a computer). For example, a machine-readable medium may include read only memory (ROM); random access memory (RAM); magnetic disk storage media; optical storage media; flash memory devices; electrical, optical, acoustical or other form of propagated signals (e.g., carrier waves, infrared signals, digital signals, the interfaces that transmit and/or receive signals, etc.), and others.

An embodiment is an implementation or example of the inventions. Reference in the specification to “an embodiment,” “one embodiment,” “some embodiments,” or “other embodiments” means that a particular feature, structure, or characteristic described in connection with the embodiments is included in at least some embodiments, but not necessarily all embodiments, of the inventions. The various appearances “an embodiment,” “one embodiment,” or “some embodiments” are not necessarily all referring to the same embodiments.

Not all components, features, structures, characteristics, etc. described and illustrated herein need be included in a particular embodiment or embodiments. If the specification states a component, feature, structure, or characteristic “may”, “might”, “can” or “could” be included, for example, that particular component, feature, structure, or characteristic is not required to be included. If the specification or claim refers to “a” or “an” element, that does not mean there is only one of the element. If the specification or claims refer to “an additional” element, that does not preclude there being more than one of the additional element.

Although flow diagrams and/or state diagrams may have been used herein to describe embodiments, the inventions are not limited to those diagrams or to corresponding descriptions herein. For example, flow need not move through each illustrated box or state or in exactly the same order as illustrated and described herein.

The inventions are not restricted to the particular details listed herein. Indeed, those skilled in the art having the benefit of this disclosure will appreciate that many other variations from the foregoing description and drawings may be made within the scope of the present inventions. Accordingly, it is the following claims including any amendments thereto that define the scope of the inventions. 

What is claimed is:
 1. A controller comprising: a single memory activate pin to provide a first signal; one or more combined memory command/address signal pins; and a selection circuit to: interpret, if the first signal on the single memory activate pin is a first value, the first signal as a memory activate command, and second signals on the one or more combined memory command/address signal pins as memory address signals related to the memory activate command; and interpret, if the first signal on the single memory activate pin is a second value, the first signal and the second signals as a memory command that is different than the memory activate command, wherein, if the first signal is the second value, the second signals on respective combined memory command/address signals pins comprise a plurality of memory command signals.
 2. The controller of claim 1, wherein the controller comprises a processor, a Central Processing Unit, and/or a memory controller.
 3. The controller of claim 1, wherein the controller is adapted to be coupled to a Double Data Rate memory and the first signal or second signals are Double Data Rate signals.
 4. The controller of claim 1, wherein the controller is adapted to be coupled to a Double Data Rate 4 memory and the first signal or second signals are Double Data Rate 4 signals.
 5. The controller of claim 4, wherein the one or more combined memory command/address signal pins are CAS#/A16, RAS#/A15, and WE#/A14.
 6. The controller of claim 1, wherein, if the first signal is the second value, one of the second signals on a respective one of the combined memory command/address signal pins is a CAS, RAS and/or WE memory command signal.
 7. The controller of claim 1, wherein the one or more combined memory command/address signal pins are one or more lowest order memory address pins.
 8. The controller of claim 1, wherein the single memory activate pin is a dedicated pin to only receive the memory activate command.
 9. A method comprising: identifying a value of a first signal on a single memory activate pin configured to uniquely identify a memory activate command; and interpreting, if the first signal on the single memory activate pin is a first value, the first signal as a memory activate command, and second signals on one or more combined memory command/address signal pins as memory address signals related to the memory activate command; and interpreting, if the first signal on the single memory activate pin is a second value, the first signal and the second signals as a memory command that is different than the memory activate command, wherein, if the first signal is the second value, the second signals on respective combined memory command/address signals pins comprise a plurality of memory command signals.
 10. The method of claim 9, wherein the first signal or second signals are Double Data Rate memory signals.
 11. The method of claim 9, wherein the first signal or second signals are Double Data Rate 4 memory signals.
 12. The method of claim 11, wherein the one or more combined memory command/address signal pins are CAS#/A16, RAS#/A15, and WE#/A14.
 13. The method of claim 9, further comprising interpreting, if the first signal is the second value, one of the memory command/address signal pins as CAS, RAS or WE memory command signal pins.
 14. The method of claim 9, wherein the one or more combined memory command/address signal pins are one or more lowest order memory address pins.
 15. The method of claim 9, wherein the single memory activate pin is a dedicated pin to only receive the memory activate command. 